package com.skzh.equipment.mapper;

import java.util.List;
import java.util.Map;

import com.skzh.equipment.domain.Dock;
import org.apache.ibatis.annotations.MapKey;

/**
 * 机场基本信息Mapper接口
 *
 * @author skzh
 * @date 2025-03-21
 */
public interface DockMapper {
    /**
     * 查询机场基本信息
     *
     * @param id 机场基本信息主键
     * @return 机场基本信息
     */
    public Dock selectDockById(Long id);

    /**
     * 查询机场基本信息列表
     *
     * @param dock 机场基本信息
     * @return 机场基本信息集合
     */
    public List<Dock> selectDockList(Dock dock);

    /**
     * 新增机场基本信息
     *
     * @param dock 机场基本信息
     * @return 结果
     */
    public int insertDock(Dock dock);

    /**
     * 修改机场基本信息
     *
     * @param dock 机场基本信息
     * @return 结果
     */
    public int updateDock(Dock dock);

    /**
     * 删除机场基本信息
     *
     * @param id 机场基本信息主键
     * @return 结果
     */
    public int deleteDockById(Long id);

    /**
     * 批量删除机场基本信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDockByIds(Long[] ids);

    public List<String> selectAllSearchValue();

    @MapKey("id")
    List<Map<String, Object>> selectAllNoBind();

    @MapKey("id")
    List<Map<Object, Object>> selectAllDockName();

    /**
     * 查询在线设备列表(包括机场和无人机)
     *
     * @param dock 查询条件
     * @return 在线设备信息集合
     */
    List<Map<String, Object>> selectOnlineDevicesList(Dock dock);
}
